package cn.edu.cqupt.cxcy.dao;

import java.util.List;

import cn.edu.cqupt.cxcy.model.Member;
import cn.edu.cqupt.cxcy.model.MemberInfo;
import cn.edu.cqupt.cxcy.model.Project;
import cn.edu.cqupt.cxcy.model.Team;
import cn.edu.cqupt.cxcy.model.Tutor;

public interface TeamDao {
	/**
	 * 将发布的项目保存到数据库
	 * @param project
	 */
    public void publishProject(Project project);
    /**
     * 展示团队成员,以图文形式
     * @param id
     * @return
     */
    public List<MemberInfo> showTeamMember(int id);
    /**
     * 获取团队成员的人数
     * @param id
     * @return
     */
    public int getTeamMemberCount(int id);
    /**
     * 添加团队成员
     * @param member
     * @param teamId
     * @param type
     */
    public void addTeamMember(Member member,int teamId,String type);
    /**
     * 删除团队成员
     * @param id
     */
    public void deleteTeamMember(int id);
    /**
     * 展示团队成员以列表的形式
     * @param id
     * @return
     */
    public List<Object> showTeamMemberByList(int id);
    /**
     * 保存团队发布的项目信息,包括项目的文档和logo
     * @param project
     */
    public void insertProjectInfo(Project project);
    /**
     * 得到团队导师的信息
     * @param id
     * @return
     */
    public Tutor tutorInfo(int id);
    /**
     * 得到团队的信息
     * @param teamId
     * @return
     */
    public Team teamInfo(int teamId);
    /**
     * 保存成员的信息到数据库
     * @param member
     */
    public void addMemberInfo(Member member,int teamId);
    /**
     * 以图片形式展示团队成员
     * @param id
     * @return
     */
    public List<Object> showTeamMemberByPicture(int id);
    /**
     * 完善团队的信息
     * @param teamId
     */
    public void addTeamInfo(Team team);
    /**
     * 根据队员id得到每个队员的信息
     * @param memberId
     */
    public Member getMemberInfoById(int memberId);
    /**
     * 根据队员的id删除该队员
     * @param memberId
     * @return
     */
    public boolean deleteTeamMenber(int memberId);
    /**
     * 通过文件类型得到相应的代码
     * @param type
     * @return
     */
    public int getTypeByName(String type);
}
